1. Field of the Invention
The present invention relates to a system and method of providing a natural language interface to a database such as the Internet.
2. Introduction
Recently, a large number of web based search engines, such as Yahoo® and Google®, have become widely available making it easier to find information over the Internet. The operation of these search engines is shown in FIG. 1 wherein a user with a computing device 102, such as a desktop computer or wireless handheld computing device, has client software such as a web browser that receives text in an input field. The web browser is directed to the website of the search engine (such as Google) which is transmitted from a search engine server 106 to the computing device 102. The search engine receives the query text and uses a particular search algorithm to search billions of webpages within the World-Wide-Web (WWW) 104.
These search engines came to organize the billions of pages of information on the WWW in such a way as to make them accessible and useful for those who submit queries into the search engine input field. The key technical innovation in the search engines lies in the ability to index all words and phrases in the WWW and use an efficient information retrieval algorithm along with many computers to be able to instantly find information per the user's request.
Finding information about a subject is as simple as typing keywords into an input field. This is illustrated in FIG. 2. For example, if the user desired to learn information about hurricanes, the user can simply type in the phrase “hurricane” into the search engine input field (202). The query is submitted to a search engine (204) which returns an ordered list of webpages according to the particular search engine algorithm (206). Although searching and mining the web has never been any easier, there still remains a manual process for users need to examine the top five or ten pages from the search to identify the answer to their query. Therefore, if one is looking to find out what the wind speed is of hurricane Ivan, then typing this question into the Google input field for example could provide an article that states “Hurricane Ivan is gaining speed and power”. While this is clearly relevant to the question, and contains the correct key words, it does not answer the query correctly. Although it is natural for humans to think in terms of asking questions, and not merely keywords, and key phrases, humans have certainly become accustomed to operating differently when dealing with standard search engines.
Users typically Type keywords such as Hurricane-speed and then manually search through the relevant documents for the answer to the original question. Finding the answer typically requires the user to search manually through each page and look for the appropriate answer. When an answer cannot be found, users would normally provide alternative words in the hope of getting a different ranking of Website.
Another search engine example will further illustrate the problem of the types of responses delivered from the search query. This example relates to a user who desires to find a specific type of information on a technical computer question or error message. On the WWW, many websites have developed to provide information technology (IT) solutions to specific error messages. These websites house a growing database of content generated by users submitting questions and a technical community providing answers. In this manner, threads of information develop on specific IT problems. The websites then may present a large number of these threads, where each thread includes a particular question or technical issue and the various responses and attempted solutions to the problem. Therefore, when others receive the same error message, they can find the solution to the problem.
For example, a user may have the Microsoft® Word application crash with the error message “Winword.exe requested the runtime termination in an unusual way”. The user may submit keywords from this error message into the Google search engine and get a response with a number of webpages that contain multiple threads dealing with various Microsoft Word problems. The user is then left to search multiple threads of information to find the particular thread that relates to the particular error message. In some cases, there may be hundreds of threads with no mechanism to find the specific answer. Furthermore, access to the threads may be obtained only via a password and subscription to the website. The user can get to the certain website wherein the answer to the query is found but then be faced with multiple interactive threads in which one of the threads holds the answer to the question. But the user cannot identify which is the appropriate thread within the website that contains the answer to the question.
This illustrates a basic problem with search engines in that they do not provide specific answers to user's questions and are based on non-natural language keyword searching. In this regard the standard search engines in some cases are not useful because they only identify Websites containing many links to other webpages and may not provide controlled access to a deeper layer of information which may hold a specific answer to the user's question.
Accordingly, what is needed in the art is a system and method of enabling a user to query a data base such as the WWW and obtain a precise answer to a question.